This invention was not developed in conjunction with any Federally sponsored contract.
Not applicable.
The related application, docket number AUS000201US1, now application number 09/578,748, filed on May 25, 2000 by Cristi N. Ullmann, et al., is incorporated herein by reference in its entirety, including drawings, and hereby are made a part of this application.
1. Field of the Invention
This invention relates to the arts of graphical user interface controls provided on computer displays, and to related displays such as personal digital assistants (xe2x80x9cPDAxe2x80x9d) and wireless communications devices.
2. Description of the Related Art
Graphical user displays on electronic devices such as computers, personal digital assistants, and wireless communications devices are common in the art. As these devices become more and more integral to activities in the daily lives of people such as web browsing, word processing, and even making telephone calls, the efficiency and ergonomics of these interfaces are extremely important. A user will quickly notice whether one user interface is easier and quicker to use than another based upon the number of operations required to perform a certain task. Further, the level of xe2x80x9cintuitivenessxe2x80x9d implemented in the user interface can greatly increase the usefulness and speed with which the user can operate the device.
Many graphical user interfaces follow the same conventions for navigation of and selection of controls on the users interface. Such common graphical user interfaces (xe2x80x9cGUIxe2x80x9d) include windows or frames-type displays in Microsoft""s Windows operating system, Unix operating system, IBM""s OS/2 and AIX operating systems, Microsofts Windows CE operating system, Apple Computer""s operating system, and many xe2x80x9cproprietaryxe2x80x9d windows-like GUI""s on various devices such as PDA""s, cell phones, electronic organizers, etc.
FIG. 1 shows the basic organization of many prior art computer systems and computer-based devices. The system (10) typically includes a microprocessor central unit (xe2x80x9cCPUxe2x80x9d) including computer memory, may also include interfaces to hard disks and removable disk media (14), and possibly interfaces (17) to computer or communications networks (11) such as a network interface card (xe2x80x9cNICxe2x80x9d) or wireless communications interface. Commonly used NICs include EtherNet local area network (xe2x80x9cLANxe2x80x9d) cards, dial-up modem cards, and wireless communications circuits. Some of these circuits may be provided integral to the device (10), such as the case with web-enabled cell phones, or these circuits may be available as option circuits such as PCI cards PCMCIA cards for personal computers.
Additional typical hardware provided in the system (10) includes a group of user input/output (xe2x80x9cI/Oxe2x80x9d) devices (13), such as a display, keyboard, and/or pointing device, accompanied by common user I/O interface circuits to allow the CPU and system software to access and use the user I/O devices (13). Common display devices include VGA and LCD monitors for personal computers, and LCD panels for PDA and cell phones. Common pointing devices include xe2x80x9carrow keysxe2x80x9d, xe2x80x9ctabxe2x80x9d keys, mouse and scroll-mouse, joystick, track balls, glide point touch sensitive pads, and touch sensitive displays with stylus pens. Some devices, such as certain PDA""s, do not include an actual keyboard, but rather rely upon a touch-sensitive LCD display with virtual pointing device and stylus.
The software functionally of computer-based systems (10) can be divided into low-level device drivers and BIOS (18), an operating system (103), a portable interpreter (19), and applications programs. Low-level device drivers provide hardware-specific interface functions which allow the operating system and application programs to access the system hardware through common or generic application program interfaces (xe2x80x9cAPIxe2x80x9d). Some device drivers include necessary communications protocols and methods associated with a particular hardware device, such as a modem or wireless communications interface. Application programs can be further divided into portable applications, or applets (101), and non-portable, system-dependent applications (102). Such division of hardware and software functionally is well-understood in the art, and can be applied to large computer systems such as an IBM AS/400 equally as well to small computer systems such as PDA""s running Windows CE.
On the system display is typically shown a conventional frame or xe2x80x9cwindowxe2x80x9d of information related to a specific system function or program, such as a word processor, spreadsheet, to-do list, address book, e-mail client, or web browser. FIG. 2 shows a typical arrangement of a frame (20) including a title bar (21), tool bar (24), display area (25), and a pointer (201). The pointer (201) moves in response to the system pointing device and/or keyboard, such as typing on the arrow keys, movement of a mouse, track ball, or joystick. The title bar may include xe2x80x9cbuttonsxe2x80x9d for minimizing or restoring the frame (23), closing the program (22), as well as a display of the name of the function or program. The tool bar (24) typically includes a number of text and/or iconic options, such as xe2x80x9cfilexe2x80x9d and xe2x80x9ceditxe2x80x9d drop-down lists.
The display area may be further navigable using vertical scroll (27) and horizontal scroll (26) bars, which are especially useful for system displays of information which cannot be shown completely within one frame on the display. xe2x80x9cClickingxe2x80x9d on the right button (29) or left button (28), or xe2x80x9cdraggingxe2x80x9d the horizontal position indicator (27) causes the information in the display area (25) to be panned or scrolled left or right. Likewise, using the up button (29), down button (28), or vertical position indicator (200) can cause panning or scrolling in a vertical motion. These types of scroll bars are common on word processors, spreadsheets, graphical design packages, and web browsers.
In typical operation of these types of GUI displays, the user moves the pointer (201) to a button or text option, and selects that option by clicking on it and/or dragging it. In some cases, keyboard-only navigation or selection is possible by using special combinations of keys, such as ALT-F to select the xe2x80x9cfilexe2x80x9d drop-down menu.
A common type of GUI control is a selection list. FIG. 3 shows one type of a selection list called a drop-down list (30). This format of a selection list includes a label (31) indicating what the type of choice is, and a dialog box (32) showing the currently selected item from a list. Often, there is a drop-down button (33) associated with the control, which when operated by the user, causes the full list of options to be displayed. In some cases, the user may xe2x80x9cclickxe2x80x9d into the dialog box (32) directly, and type in his or her choice, and in other cases, the entered item is constrained to be one of the items from the list.
FIG. 4 shows the first step in the operation of these common selection lists, in which the user positions the pointer (201) over the drop-down button (33). In most cases, the system requires the user to activate the button, such as a mouse click, but in some cases, the drop-down list (40) will be automatically displayed when the pointer is simply positioned over the drop-down button. The drop-down list (40) contains some list of options available for the user to select and make the new selection. For example in a web browser, the label (31) may be xe2x80x9cLocationxe2x80x9d, and the list (40) may include the last 20 universal resource locator (xe2x80x9cURLxe2x80x9d) addresses visited. Or, in another example in a word processor, the label may be xe2x80x9cOpen File:xe2x80x9d, and the list may include the last 10 files opened and edited. In a further example on a PDA contact list function, the label may be xe2x80x9cContact info for:xe2x80x9d, and the list may include the names for the 10 persons"" card files last viewed or edited.
FIG. 5 shows how the user may select an item for the list (40). Typically, this can be achieved through several actions, such as moving the pointer (201) over the item to be selected, or using the arrow or TAB keys to highlight the selection. The indicated item is typically highlighted by a color change, background change, or reverse-video effect. The user finalizes the selection by some other action, such as clicking or double-clicking with a mouse, or pressing an xe2x80x9cENTERxe2x80x9d key on a keyboard. This causes the selected item on the list to replace the item in the dialog box, and provides the function or program with the input choice from the user, as shown in FIG. 6.
A similar GUI control is a spin list. A spin list""s visual presentation is very similar to that of a drop-down list, but typically includes a forward and reverse button. As the user clicks on the forward or reverse button, the next or previous possible selection is displayed in the dialog box for possible confirmation and finalization as the new selection. This kind of spinner control is especially common in applications where the list may be prohibitively long to display on the actual display device.
Typically, both of these types of controls and their associated possible selection lists are xe2x80x9cfinitexe2x80x9d in their length and in their operation. There is usually a maximum number of items which will be displayed in order to accommodate the physical size and resolution of the display device. Also, the user can usually highlight any item from top to bottom on the list, but must move the point up and down the entire range of the list to select an item.
As these types of drop-down lists are very useful for many types of controls for many types of system functions and programs, they have certain inherent limitations and problems. For example, the list of items may have to be very brief compared to the subject matter of the choice to be made. Such a case exists with web browser controls in which the user may want to xe2x80x9cgo toxe2x80x9d a URL or address which was accessed several hundred accesses ago. Such a short, drop-down list may only show the last few accesses, which is not adequate. Or, as in the example of the PDA and the contact card list, the user may want to look at a certain list of names of contacts sorted in some order, such as alphabetical business contacts or most recently entered personal contacts. These problems are solved in one manner by the infinite spinlist GUI control described in the related application.
However, many user""s of computers and computer-based devices which have GUI controls develop very quick sequences of keystrokes which they repeat often. For example, in a word processor such as Lotus WordPro, the function to save a file may be executed by clicking on the xe2x80x9cFilexe2x80x9d drop down menu, followed by clicking on the xe2x80x9cSavexe2x80x9d choice on the drop-down list. A keyboard shortcut can also operate the same function by typing CONTROL-F, followed by an xe2x80x9cSxe2x80x9d. Some user""s of WordPro will develop the ability to activate this control in less than a second, in some cases. So, as user""s become very familiar with a particular GUI for a particular function or program, they will start to activate certain often-used functions more quickly, which makes the GUI efficiency, or lack thereof, even more pronounced.
All of the GUI controls discussed thus far, including drop-down lists, spin lists, and infinite spinlists, can be difficult to operate rapidly due to the inability of a user to xe2x80x9cscrollxe2x80x9d through the available choices on a list and select a choice at the same speed as the computer can print the scrolling choices to the screen.
Therefore, there is a need in the art for a GUI control which allows a user to conveniently review a long list of possible selections, and to select one or more of those options as a system input, while scrolling through the list at a high speed. There is a further need in the art for this GUI control to efficiently utilize display space, as the amount of space available for each GUI control on a particular window or frame or on a particular device is usually limited.